/*
 * This file Copyright (c) 2015. Walle.
 * (http://www.wallellen.com). All rights reserved.
 *
 *
 * This file is dual-licensed under both the
 * Walle Agreement (WA) and the GNU General Public License.
 * You may elect to use one or the other of these licenses.
 *
 * This file is distributed in the hope that it will be
 * useful, but AS-IS and WITHOUT ANY WARRANTY; without even the
 * implied warranty of MERCHANTABILITY or FITNESS FOR A
 * PARTICULAR PURPOSE, TITLE, or NONINFRINGEMENT.
 * Redistribution, except as permitted by whichever of the GPL
 * or WA you select, is prohibited.
 *
 * 1. For the GPL license (GPL), you can redistribute and/or
 * modify this file under the terms of the GNU General
 * Public License, Version 3, as published by the Free Software
 * Foundation.  You should have received a copy of the GNU
 * General Public License, Version 3 along with this program;
 * if not, write to the Free Software Foundation, Inc., 51
 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * 2. For the Walle Agreement (WA), this file
 * and the accompanying materials are made available under the
 * terms of the WA which accompanies this distribution, and
 * is available at http://www.wallellen.com/agreement.html
 *
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
 */

package com.wallellen.wechat.menu;

import com.alibaba.fastjson.annotation.JSONField;
import com.wallellen.wechat.event.EventType;

import java.util.List;

/**
 * 菜单按钮
 *
 * @author <a href="mailto:wallellen@hotmail.com">WALLE</a>
 * @version 2015-7-4
 */
public class MenuButton {
    private EventType type;//菜单的响应动作类型
    private String name;//菜单标题，不超过16个字节，子菜单不超过40个字节
    private String key;//click等点击类型必须	菜单KEY值，用于消息接口推送，不超过128字节
    private String url;//view类型必须	网页链接，用户点击菜单可打开链接，不超过256字节
    private String mediaId;//media_id类型和view_limited类型必须	调用新增永久素材接口返回的合法media_id
    private List<MenuButton> subButton;//子菜单,每个一级菜单最多包含5个二级菜单

    public EventType getType() {
        return type;
    }

    public void setType(EventType type) {
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    @JSONField(name = "media_id")
    public String getMediaId() {
        return mediaId;
    }

    @JSONField(name = "media_id")
    public void setMediaId(String mediaId) {
        this.mediaId = mediaId;
    }

    @JSONField(name = "sub_button")
    public List<MenuButton> getSubButton() {
        return subButton;
    }

    @JSONField(name = "sub_button")
    public void setSubButton(List<MenuButton> subButton) {
        this.subButton = subButton;
    }

}
